
export type Properties = {
    name:string
    prop:string
    width:number
    height:number
}

export type BaseNodeType = {
    id:string
    type:string 
    x:number
    y:number,
}

// 审批人类型
export type assigneeType = {
    assigneeType:number
    layer:number
    assignees:any[]
}

export type ApprovalProperties = Properties & {
        approvalType?:number //审批类型
        flowNodeNoAuditorType?:number //未设置审批人时，指定审批人操作
        flowNodeSelfAuditorType?:number //审批人与提交人是一个人
        assigneeType:number | null
        layer?:number
        assignees?:any[]
        multiInstanceApprovalType?:number | null
        assignable:boolean
        signable:boolean
        desc:string
    }

export interface ApprovalNodeType extends BaseNodeType{
    properties:ApprovalProperties
}

export type CopyProperties = Properties & {
    ccs?:any[]
}

export interface CopyNodeType extends BaseNodeType {
    properties:CopyProperties
}

export type ConditionItemType = {
    id:string | number
    varName?:string
    val?:any
    operator?:string|number
    operators?:string[] | number[]
    label?:string
}

export type ConditionGroupItemType = {
    id:string | number
    conditions:ConditionItemType[]
}

export type ConditionProperties = Properties &  {
    conditions:ConditionItemType[]
    priorityLevel?:number
    defaultCondition?:boolean
}

export interface ConditionNodeType extends BaseNodeType {
    properties:ConditionProperties
}